package com.xoa.dao.hr;

import com.xoa.model.hr.HrStaffContract;
import com.xoa.model.hr.HrStaffContractWithBLOB;
import org.apache.ibatis.annotations.Param;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
/**
 *    创建作者:      高亚峰
 *    创建日期：     2017-07-13 16:38
 *    类介绍：       合同接口类
 *    构造参数：     无
 *
 */
public interface HrStaffContractMapper {
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月13日 下午16:40:41
     * 方法介绍:   查询和同详情
     * 参数说明:   ContractId 合同自动递增Id
     * @return    HrStaffContract
     */
    public HrStaffContract getcontractinfo(Integer contractId);

    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月13日 下午17:23:41
     * 方法介绍:   合同信息修改
     * 参数说明:   HrStaffContract 参数
     * @return    ToJson
     */
    public void updateContractInfo(HrStaffContract hrStaffContract);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月13日 下午18:04:41
     * 方法介绍:   删除合同信息接口
     * 参数说明:    ContractId 合同自动递增Id
     * @return    ToJson
     */
    public void deleteContractInfo(Integer contractId);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月14日 上午10:28:04
     * 方法介绍:   查询合同列表接口
     * 参数说明:
     * @return    HrStaffContract
     */
     public List<HrStaffContract> getAllContract(Map<String,Object>map);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月14日 上午10:53:04
     * 方法介绍:   合同管理新建接口
     * 参数说明:   HrStaffContract
     * @return    void
     */
    public int addContract(HrStaffContract hrStaffContract);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月14日 下午15:24:04
     * 方法介绍:   查询合同使用到期的合同
     * 参数说明:   startTime 到期开始时间
     * 参数说明:   endTime 到期开始时间
     * @return    List<HrStaffContract></>
     */
    public List<HrStaffContract> getTrialContract(Map<String,String> map);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月14日 下午16:24:04
     * 方法介绍:   查询合同到期的合同
     * 参数说明:   startTime 到期开始时间
     * 参数说明:   endTime 到期开始时间
     * 参数说明：   hrStaffContract
     * @return    List<HrStaffContract>
     */
    public List<HrStaffContract> getMaturityContract(Map<String,Object> map);
    /**
     * 创建作者:   高亚峰
     * 创建日期:   2017年7月14日 下午17:50:04
     * 方法介绍:   合同查询接口
     * 参数说明：   map
     * @return    List<HrStaffContract>
     */
    public List<HrStaffContract>getContract(Map<String,Object>map);
    
    /**
     * @作者：张航宁
     * @时间：2017/7/25
     * @介绍：多个删除接口
     * @参数：ids
     */
    void deleteByIds(@Param(value = "ids") String[] ids);

    /**
     * @作者：张航宁
     * @时间：2017/7/25
     * @介绍：查询记录数
     * @参数：map
     */
    Integer getAllCount();
    /**
     * @作者：高亚峰
     * @时间：2017/7/25
     * @介绍：查询记录数
     * @参数：map
     */
    Integer getAllCountMap(Map<String,Object>map);
    /**
     * 创建作者:   季佳伟
     * 创建日期:   2017年11月17日 下午13:50:04
     * 方法介绍:   查询登录人的合同信息
     * 参数说明：
     * @return    List<HrStaffContract>
     */
    public List<HrStaffContract> getContractInfoByStaffName(String staffName);

    List<HrStaffContract>  getHrCountByType();

    List<HrStaffContract> getHrStaffContractList(String userId);

    /**
     * 创建者：戚中校
     * 方法作用：人事分析模块查询数量代码
     * @return
     */
    List<HrStaffContract> selectNumByCon(Map<String,Object> map);

    /**
     * 李阳
     * 2018.8.3
     * 根据 staffName查找合同
     * @param
     * @return
     */
    List<HrStaffContract> getByStaffNameContract(HashMap<String,Object> map);
    int getByStaffNameContractCount(String staffName);

    List<HrStaffContractWithBLOB> getcontractinfoList(List list);

    List<HrStaffContractWithBLOB> getContractBLO(Map map);

    HrStaffContract getContractImport(HrStaffContract hrStaffContract);

    List<HrStaffContract> getInfoByUserId(String userId);
}
